package com.ym521.activitystack

import android.app.Application
import android.content.Context
import androidx.fragment.app.FragmentActivity

/**
 *@author Ym
 * @Email 2435970206@qq.com
 * @QQ 2435970206
 *ActivityStack的代理接口
 */
internal interface YmActivityStackUse {
    /**
     * 初始化
     * 强烈建议在Application 中初始化
     */
    fun init(application: Application)

    /**
     * 获取当前的activity
     */
    fun currentActivity(): FragmentActivity

    /**
     * 回退栈顶的activity
     */
    fun popActivity()

    /**
     * 回退指定的activity
     * @param activity 指定要销毁的activity
     */
    fun popActivity(activity: FragmentActivity)

    fun <T:FragmentActivity> popActivity(clazz: Class<T>)

    /**
     * 销毁所有的ctivity
     */
    fun popAllActivity()

    /**
     * 判断当前APP 是否在前台
     */
    fun isForeground(): Boolean

    /**
     * 重启APP
     */
    fun restartApp(mContext: Context)
}